var BookingAccountOk = function() {
    // Util Class
    this.mUtil = null;

    // UI Select 데이터
    this._HTMLDom = null;

    // 예약 번호
    this.reserv_id = null;
    // 예약 타입
    this.reserv_type = null;
    // 예약 데이터
    this.reserv_data = null;

};

BookingAccountOk.prototype = {
    constructor : BookingAccountOk,
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // InterlockBooking class 에 연동요청
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
     * 실시간 예약 부킹 상세 데이터 가져오는 연동
     */
    getRsvBookingData : function($reserv_id) {
        var thisClass = this;
        var interlockBooking = new InterlockBooking();

        $.mobile.showPageLoadingMsg();

        console.log($reserv_id);

        interlockBooking.getTimeBookingDetailData($reserv_id, function($data) {
            thisClass.reserv_data = $data;
            thisClass.setBookingResultView(thisClass.reserv_data);
            $.mobile.hidePageLoadingMsg();
        }, function(e) {
            alert("fail :: " + JSON.stringify(e));
            $.mobile.hidePageLoadingMsg();
        });
    },
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Method
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    setBookingResultView : function($data) {
        var data = $data;

        var title_G = this._HTMLDom.reserv_result.title_G;
        var title_P = this._HTMLDom.reserv_result.title_P;
        var guide_P = this._HTMLDom.reserv_result.guide_P;

        var title = this._HTMLDom.reserv_info.title_layer;
        var hole = this._HTMLDom.reserv_info.hole;
        var date = this._HTMLDom.reserv_info.date;

        var price_old = this._HTMLDom.reserv_info.price_old;
        var arrow = this._HTMLDom.reserv_info.arrow;
        var greenfee = this._HTMLDom.reserv_info.greenfee;
        var price = this._HTMLDom.reserv_info.price;

        var price_pay = this._HTMLDom.reserv_info.price_pay;

        var i = 0;
        var dateStr = "" + data.reserv_date;
        var timeStr = "" + data.reserv_time;
        var tempStr = "";

        // 버튼 및 타이틀 설정
        if (this.reserv_type == "P") {
            // 가예약 일 경우
            title_G.hide();

            var tempDate = new Date(dateStr.substr(0, 4), Number(dateStr.substr(4, 2)) - 1, dateStr.substr(6, 2));
            // 예약일의 5일전 설정
            tempDate.setDate(tempDate.getDate() - 5);

            // 가예약 마감일 표시
            guide_P.find('mark').html(tempDate.getFullYear() + "년" + (tempDate.getMonth() + 1) + "월" + tempDate.getDate() + "일");

            $('#bottom_btn').click(function() {
                // TODO
                $.mobile.changePage("booking_set_pop.html");
            });
        } else if (this.reserv_type == "G") {
            // 확정 예약 일 경우
            title_P.hide();
            guide_P.hide();
            $('#bottom_btn').hide();
        }

        // 예약 정보 설정

        title.empty();
        // 클럽 이름
        tempStr = data.club_name;

        while (i < data.course_name.length) {
            if (data.course_name[i] != undefined) {
                tempStr += " " + data.course_name[i];
            }
            i++;
        }
        title.html(tempStr);

        // 홀
        hole.html(" " + data.hole + "H");
        title.append(hole);

        // 날짜, 시간
        date.html(dateStr.substr(0, 4) + "." + dateStr.substr(4, 2) + "." + dateStr.substr(6, 2) + "(" + data.reserv_day + ") " + timeStr.substr(0, 2) + ":" + timeStr.substr(2, 2));
        title.append(date);

        if (data.price > data.greenfee_pay) {
            // 할인가가 정가보다 저렴할때
            price.hide();
            // 정가
            price_old.find('span').html(this.mUtil.getMoneyTypeNum(data.price) + " 원");

            // 할인가
            greenfee.find('mark').html(this.mUtil.getMoneyTypeNum(data.greenfee_pay));
        } else {
            // 할인가와 정가가 같거나 할인가가 클때
            price_old.hide();
            arrow.hide();
            greenfee.hide();

            price.find('span > mark').html(this.mUtil.getMoneyTypeNum(data.price));
        }

        // 가승인 결재 금액
        price_pay.html("￦ " + this.mUtil.getMoneyTypeNum(data.price_pay));
    },
    /**
     * 필요한 테이터 셋팅
     */
    setData : function($data) {
        this.reserv_id = $data.account_ok.reserv_id;
        this.reserv_type = $data.account_ok.reserv_type;
        console.log($data.account_ok);
    },
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Initialize
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    onPageShow : function() {
        console.log("BookingAccountOk onPageBeforeShow!");
        var thisClass = this;

        this.mUtil = document.globalObj.util;

        // 부킹 상세 보기 관련 데이터 셋팅 및 초기화
        this.setData(document.globalObj.BOOKING_DATA);

        var result_title_layer = $('#reserv_result_title');
        var reserv_info_layer = $('#reserv_info');

        this._HTMLDom = {
            // 예약 결과
            "reserv_result" : {
                // 확정 예약 완료 타이틀
                "title_G" : result_title_layer.find('p:first'),
                // 가예약 완료 타이틀
                "title_P" : result_title_layer.find('p:eq(1)'),
                // 가예약 완료 안내 문구
                "guide_P" : result_title_layer.find('p:eq(2)')
            },
            // 예약 정보
            "reserv_info" : {
                "title_layer" : reserv_info_layer.find("h5"), // 타이틀
                "hole" : reserv_info_layer.find("h5 > em"), // 홀
                "date" : reserv_info_layer.find("h5 > mark"), // 날짜
                "price_old" : reserv_info_layer.find("div:eq(1)"), // 할인 이전가
                "arrow" : reserv_info_layer.find('div:eq(2)'), // 화살표
                "greenfee" : reserv_info_layer.find("div:eq(3)"), // 할인가
                "price" : reserv_info_layer.find('div:eq(4)'), // 정상가
                "price_pay" : reserv_info_layer.find("div:last > mark"),        // 가승인 결재 금액
            }
        };

        // 부킹 상세 데이터 가져오기
        this.getRsvBookingData(this.reserv_id);

        // 부킹 홈 버튼
        $('#go_calendar').click(function() {
            $.mobile.changePage("calendar.html");
        });

        // 주의사항 버튼
        $('#go_booking_help').on('click', function() {
            // TODO : Modal View 작업
            console.log("go help");
            $.mobile.changePage("booking_help.html");
        });

        // 마이골프인 가기 링크
        $('#go_my_booking').click(function() {
            $.mobile.changePage("../mypage/booking_info.html");
        });

    }
};

